package com.parkingspace.service;

import com.parkingspace.entity.User;
import com.parkingspace.util.ResultVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * ClassName: IProductService
 * Package: com.parkingspace.service
 *
 * @author: guanzepeng
 * @Date: 2021/5/27 17:31 星期四
 * @Description:
 */
@FeignClient(value = "e-user")
public interface IEUserService {

	/**
	 * 进行登录验证操作
	 * @param uaccount 传入账号
	 * @param upass 传入密码
	 * @return 返回ResultVO
	 */
	@GetMapping ("/user/login")
	ResultVO login(@RequestParam("uaccount") String uaccount, @RequestParam("upass") String upass);

	@GetMapping("/user/registered")
	ResultVO register(User user);

	/**
	 * 进行用户选择进入界面的信息存储
	 * @param token 登录成功的令牌
	 * @param id 1代表业主,2代表租客
	 * @return 返回ResultVO,data存储了boolean
	 */
	@PostMapping("/user/getUserNum/{token}/{id}")
	ResultVO getUserNum (@PathVariable("token") String token, @PathVariable("id") Integer id);

	/**
	 * 进行实名认证
	 * @param token 传入令牌
	 * @param uname 传入真实姓名
	 * @param idCard 身份证号
	 * @return 返回0:认证失败!,1:认证成功!
	 */
	@PutMapping("/user/updateVerified/{token}")
	ResultVO updateVerified (@PathVariable("token") String token,@RequestParam("uname") String uname,@RequestParam("idCard") String idCard);

	/**
	 * 进行实名认证检测
	 * @param token 传入token
	 * @return 返回数字 0:未实名,1:已实名
	 */
	@GetMapping("/user/realNameDetection/{token}")
	ResultVO realNameDetection(@PathVariable("token") String token);

	/**
	 * 查询user表中的所有信息
	 * @return 返回List
	 */
	@GetMapping("/user/findAll")
  ResultVO findAll ();

	/**
	 * 查询钱包金额
	 * @param token 传入令牌
	 * @param role 传入当前用户身份数字 1.管理员,2.出租方,3.车主,4.物业
	 * @return 返回钱包剩余金额
	 */
	@GetMapping("/person-wallet/queryWalletAmount/{token}/{role}")
	public ResultVO queryWalletAmount (@PathVariable("token") String token, @PathVariable("role") Integer role);
}
